# Title: Primeros 500 primos                 		      Filename: PrimosAlan.s
# Autho: Garcia Perez Alan			                  		Date: 16 / Mar / 2017
# Description: Primeros 500 numeros Primos
# Input: -
# Output: 500 Numeros Primos

@ r1 Direccion del "primo"
@ r3 Numero a Evaluar       (N en knuth)
@ r4 Cuenta los primos   (J en knuth)
@ r5 Divisores a revisar
@ r6 Indicie de los divisiores
@ r7 Recordatorio    (R en knuth)
@ r8 Cociente      (Q en knuth)
@ r9 Primos buscados

.section    .bss
.comm prime, 2000        @Espacio reservado para primos

#Data Segment

.section      .data
spc:                  	 @Espacio primo con 3 espacios
        .ascii "  "
len = . - spc
nl:                  		 @Nueva linea
        .ascii "\n"
limit:               		 @Indice del ultimo primo necesitado
        .long 500
       
.section .text
.globl  _start

#Code Segment

_start:

P1:
ldr r1, =prime
mov r0, $2           		 @Primer primo es dos
str r0, [r1]         		 @Almacenamos 2 en el arreglo
ldr r0, =limit
ldr r9, [r0]         		 @R2 guarda los primos buscados
mov r3, $3           		 @Inicializamos n en 3
mov r4, $1           		 @Inicializamos j en 1

P2:                  		 @Se mueve a 2 cuando encuentra un primo
add r4, r4, $1       		 @Incremento
str r3, [r1, #4]      	 @N lo movemos a primos

P3: 
cmp r4, r9           		 @Verificamos si ya finalizo
bge P9              		 @Rama hacia P9
